/**
 * 线程不安全的线程类
 * 这里即使我们使用的volatile修饰了 num字段，但是在业务代码块我们执行了num++操作，num++的执行过程包括了读取，修改，赋值操作，
 * 所以如果想要达到线程安全，我们需要使用 synchronized来维护代码了。
 * @author 杨亚旭
 * @date 2019-02-20-10:09
 **/
public class UnSafeThread implements Runnable{
    private volatile int num =0;


    public  void run() {
        for (int i=1;i<11;i++){
            num++;
            System.out.println("线程名称"+Thread.currentThread().getName()+",第"+i+"次循环,num值"+num);
        }
    }

    public static void main(String[] args) {
        UnSafeThread runnable=new UnSafeThread();
        Thread t1=new Thread(runnable,"t1");
        t1.start();
        Thread t2=new Thread(runnable,"t2");
        t2.start();
        Thread t3=new Thread(runnable,"t3");
        t3.start();

    }

}
